{{#if eml}}
<!-- Load the left.flexmi EMF model -->
<epsilon.emf.loadModel name="Left" aliases="Source" modelfile="left.flexmi" metamodelfile="left.emf" />

<!-- Load the left.flexmi EMF model -->
<epsilon.emf.loadModel name="Right" aliases="Source" modelfile="right.flexmi" metamodelfile="right.emf" />

<!-- Run program.ecl against them to establish matches -->
<epsilon.ecl src="program.ecl" exportMatchTrace="matchTrace">
    <model ref="Left" />
    <model ref="Right" />
</epsilon.ecl>

<!-- Load the target.xmi EMF model -->
<epsilon.emf.loadModel name="Merged" aliases="Target" modelfile="merged.xmi" metamodelfile="target.emf" read="false" store="true"/>

<!-- Run program.eml against the left and right models to merge them using the matches established above -->
<epsilon.eml src="program.eml" useMatchTrace="matchTrace">
    <model ref="Left" />
    <model ref="Right" />
    <model ref="Merged" />
</epsilon.eml>

<!-- Dispose of all models -->
<epsilon.disposeModel model="Left"/>
<epsilon.disposeModel model="Right"/>
<epsilon.disposeModel model="Merged"/>
{{else if etlOrFlock}}
<!-- Load the {{ sourceModelFileName }}.flexmi EMF model -->
<epsilon.emf.loadModel name="{{ sourceModelName }}" modelfile="{{ sourceModelFileName }}.flexmi" metamodelfile="{{ sourceModelFileName }}.emf" />

<!-- Load the {{ targetModelFileName }}.xmi EMF model -->
<epsilon.emf.loadModel name="{{ targetModelName }}" modelfile="{{ targetModelFileName }}.xmi" metamodelfile="{{ targetModelFileName }}.emf" read="false" store="true"/>

<!-- Run program.{{ extension }} against it -->
<epsilon.{{ task }} src="program.{{ extension }}"{{#if flock}} originalModel="{{ sourceModelName }}" migratedModel= "{{ targetModelName }}"{{/if}}>
    <model ref="{{ sourceModelName }}" />
    <model ref="{{ targetModelName }}" />
</epsilon.{{ task }}>

<!-- Dispose of both models -->
<epsilon.disposeModel model="{{ sourceModelName }}"/>
<epsilon.disposeModel model="{{ targetModelName }}"/>
{{else}}
<!-- Load the model.flexmi EMF model -->
<epsilon.emf.loadModel name="M" modelfile="model.flexmi" metamodelfile="metamodel.emf" />

<!-- Run program.{{ extension }} against it -->
<epsilon.{{ task }} src="program.{{ extension }}"{{#if egl}} target="generated.txt"{{/if}}>
    <model ref="M" />
</epsilon.{{ task }}>

<!-- Dispose of the model -->
<epsilon.disposeModel model="M"/>
{{/if}}